package lab02.test23;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.*;
//用*可以包含所有需要引入的包
/*1.import java.util.Calendar;写在开头
Calendar是一个抽象类，我们无法直接实例化它，它有一个具体子类实体类java.util.GregorianCalendar，
我们可以直接使用new命令创建它的实例，
或者使用Calendar类的getInstance方法来获得它实例. 
        Calendar c1 = Calendar.getInstance();   
        Calendar c2 = new GregorianCalendar();
 2.SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
        它允许进行格式化（日期 -> 文本）、解析（文本 -> 日期）和规范化*/
public class test23 {
    public static void main(String[] args) throws ParseException {
        Date now = new Date();//获取当前时间
        SimpleDateFormat f = new SimpleDateFormat("今天是：" + "yyyy年MM月dd日");//月份字母必需大写
        System.out.println(f.format(now));


       /* String s = String.format("%tY年%tm月%td日", new Date(), new Date(), new Date()); //获取当前日期与时间并将其格式化令其只输出年月日

        System.out.println("当前日期：" + s); //输出当前日期*/

        String a = String.format("%tj", new Date()); //%tj :一年中的第几天,是String类型
        int day1 = Integer.parseInt(a); //将字符串形式的天数强制转换为int类型


        Scanner sc = new Scanner(System.in);
        System.out.println("输入我的生日：(注意格式为xxxx-xx-xx)");
        String birthday = sc.nextLine();

        SimpleDateFormat birth = new SimpleDateFormat("yyyy-MM-dd");//将输入的字符串格式化
        Date t = birth.parse(birthday);//解析字符串为时间


//        String b=String.format("%tY年%tm月%td日",t,t,t);
//        System.out.println(b);

        String days = String.format("%tj", t);
        String weekday = String.format("%tA", t);

        System.out.println("我的生日在" + weekday);

        int day2 = Integer.parseInt(days);
        if (day2 > day1) {
            System.out.println("距离我的生日还有" + (day2 - day1) + "天");
        } else
            System.out.println("我的生日已经过了" + (day1 - day2) + "天");
    }
}


